pub fn new_count_distinct(input_str: &str) -> usize {
    // 先判断是否存在逗号，如果不存在直接返回
    let index = input_str.find(',').unwrap();
    if index > 0{
        // 进入判断非重复元素函数中
        return split_str_self(input_str);
    }
    0
}

/**
    判断非重复元素函数,返回非重复的元素数
    通过循环字符串的字符来判断逗号的位置，因此来进行元素的组合
    组合后依然使用数组进行比较获取非重复的元素数
*/
pub fn split_str_self(input_str: &str) -> usize{
    // 中间字符串的存储变量
    let mut substring = String::new();
    // 非重复元素的数组
    let mut chars:Vec<String> = Vec::new();
    // 将字符串分解成字符
    for c in input_str.chars(){
        // 判断当前字符是否为逗号
        if c != ',' {
            // 非逗号则添加到中间字符串中
            substring += &c.to_string();
        }else{
            // 当确定是逗号后与非重复的字符串进行比对
            if !chars.contains(&substring) {
                // 如果不是重复的元素，则进行保存
                chars.push(substring.clone());
            }
            substring = String::new();
        }
    }
    // 最后判断中间字符串是否还存有字符串，当最后一位不是逗号时，会有遗漏
    if substring.len() > 0{
        if !chars.contains(&substring) {
            chars.push(substring.clone());
        }
    }
    chars.len()
}

/**
    判断非重复元素函数,返回非重复的元素数
    直接使用rust自带的字符串切片方法，通过数组的比对获取不重复的元素数
*/
pub fn split_str(input_str: &str) -> usize{
    // 根据逗号将
    let chars: Vec<&str> = input_str.split(',').collect();
    // 非重复元素的数组
    let mut new_char:Vec<String> = Vec::new();
    for c in chars{
        if !new_char.contains(&c.to_string()) {
            new_char.push(c.to_string());
        }
    }
    new_char.len()
}
